﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using System.IO;

namespace HotelManagement
{
    class CheckInput
    {

        public static string ERR_TITILE = "Thông báo";

        public static string ERR_UPDATE="Cập nhật thất bại";
        public static string SUC_UPDATE = "Cập nhật thành công";

        public static string ERR_INSERT = "Thêm thất bại";
        public static string SUC_INSERT = "Thêm thành công";

        public static string ERR_HOTEN = "Họ tên nhập không hợp lệ";
        public static string ERR_CMND = "Số chứng minh hoặc passport chưa hợp lệ";
        //RoomManagement
        public static string ERR_ROOMNAME = "Tên phòng đặt không hợp lệ";
        public static string ERR_NO_ROOM_NAME_SELECTED = "Phải chọn một phòng";


        //Dành cho tình trạng của phòng
        public static int STATUS_CHECK_OUT = 0;
        public static int STATUS_BOOK_IN = 1;
        public static int STATUS_CHECK_IN = 2;

        public static List<string> lstStatus;

        public static string CURRENT_DERECTORY = Directory.GetCurrentDirectory();
        public static string IMAGES_DIRECTORY = CURRENT_DERECTORY + "\\Images\\";

        public static List<string> lstServiceUnit;
        public CheckInput()
        {
            lstStatus = new List<string>();
            lstStatus.Add("Phòng trống");
            lstStatus.Add("Đã được đặt chỗ");
            lstStatus.Add("Hết chỗ trống");

            lstServiceUnit = new List<string>();
            lstServiceUnit.Add("Chọn đơn vị");
            lstServiceUnit.Add("Giờ");
            lstServiceUnit.Add("Nữa ngày");
            lstServiceUnit.Add("Ngày");
        }

        /// <summary>
        /// this function check a string input
        /// if it contains any special character return false
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public bool _isString(string str)
        {
            if (str=="")
            {
                return false;
            }
            char[] varChar = str.ToCharArray();
            int i = 0;
            while (i < varChar.Length && Convert.ToInt32(varChar[i]) >= 97 && Convert.ToInt32(varChar[i])<=122)
            {
                i++;
            }
            if (i < varChar.Length)
            {
                return false;
            }
            return true;
        }
        //[A-Za-z0-9]
        public bool _isRoomName(string str)
        {
            if (str == "")
            {
                return false;
            }
            char[] varChar = str.ToCharArray();
            int i = 0;
            while (i < varChar.Length && 
                ((Convert.ToInt32(varChar[i]) >= 97 && Convert.ToInt32(varChar[i]) <= 122)
                || (Convert.ToInt32(varChar[i]) >= 48 && Convert.ToInt32(varChar[i])<=57)
                 || (Convert.ToInt32(varChar[i]) >= 65 && Convert.ToInt32(varChar[i]) <= 90)))
            {
                i++;
            }
            if (i < varChar.Length)
            {
                return false;
            }
            return true;
        }
        //[a-z,0-9]
        
        public bool _isPassword(string str)
        {
            if (str == "")
            {
                return false;
            }
            char[] varChar = str.ToCharArray();
            int i = 0;
            while (i < varChar.Length && 
                ((Convert.ToInt32(varChar[i]) >= 97 && Convert.ToInt32(varChar[i]) <= 122)
                || (Convert.ToInt32(varChar[i]) >= 48 && Convert.ToInt32(varChar[i])<=57)))
            {
                i++;
            }
            if (i < varChar.Length)
            {
                return false;
            }
            return true;
        }
        
        //Check name [A-Za-z] with some space bar
        public bool _isName(string str)
        {
            if (str == "")
            {
                return false;
            }
            char[] varChar = str.ToCharArray();
            int i = 0;
            while (i < varChar.Length &&
                (Convert.ToInt32(varChar[i])==32
                || (Convert.ToInt32(varChar[i]) >= 97 && Convert.ToInt32(varChar[i]) <= 122)//tu a-z
                || (Convert.ToInt32(varChar[i]) >= 65 && Convert.ToInt32(varChar[i]) <= 90)))
            {
                i++;
            }
            if (i < varChar.Length)
            {
                return false;
            }
            return true;
        }

        public bool _isNumber(string str)
        {
            if (str == "")
            {
                return false;
            }
            char[] varChar = str.ToCharArray();
            int i = 0;
            while (i < varChar.Length &&
                (Convert.ToInt32(varChar[i]) >= 48 && Convert.ToInt32(varChar[i]) <= 57))
            {
                i++;
            }
            if (i < varChar.Length)
            {
                return false;
            }
            return true;
        }
        public void SelectExecuteRow(DataGridView dgv, int idx)
        {
            int rowCount = dgv.RowCount;
            for (int i = 0; i < rowCount; i++)
            {
                if (Convert.ToInt32(dgv[0, i].Value.ToString()) == idx)
                {
                    try
                    {
                        dgv.Rows[i].Selected = true;
                    }
                    catch (System.Exception e)
                    {
                        return;
                    }

                }
            }
        }

    }
}
